package main;


import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import quartz.CollectMetricQuartz;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;


/**
 * @author Administrator
 */
public class AgentMain {
	public static void main(String[] args) {

		try {
			//创建scheduler，从factory中获取一个scheduler
			Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

			//定义一个Trigger,设置执行的契机
			//定义name/group，trigger的名字和group，用来识别
			//一旦加入scheduler，立即生效
			//使用SimpleSchedule,每隔60秒执行一次,一直执行，奔腾到老不停歇
			//
			Trigger trigger = newTrigger().withIdentity("cassandraTrigger", "triggerGroup")
					.startNow()
					.withSchedule(simpleSchedule()
							.withIntervalInSeconds(60)
							.repeatForever())
					.build();

			//定义一个JobDetail,执行的内容
			//定义Job类为HelloQuartz类，这是真正的执行逻辑所在
			//定义name/group,jobdetail的名字和组，他在scheduler中唯一标识
			//定义属性
			JobDetail job = newJob(CollectMetricQuartz.class)
					.withIdentity("cassandraJob", "jobGroup")
					.usingJobData("name", "quartz")
					.build();

			//加入这个调度
			scheduler.scheduleJob(job, trigger);

			//启动之
			scheduler.start();

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
